/*
 * CommunicationADP.h
 *
 *  
 */

#ifndef COMMUNICATIONADP_H_
#define COMMUNICATIONADP_H_

#include "MiddlewareCommon.h"
#include "../IPC/SharedMemoryInterface.h"
#include "../IPC/MessageQueue.h"

#define ADP_TIPO_PRODUCCION 1
#define ADP_TIPO_GABINETES 2

namespace middleware {

class CommunicationADP {
public:
	CommunicationADP();
	void producir(ProductoCantidad &productos);
	ProductoCantidad obtenerAProducir();
	//launcher
	static void create();
	static void destroy();
	virtual ~CommunicationADP();

private:
	ipc::MessageQueue<ProductoCantidad> colaRecepcion;
	static const std::string ADP_QUEUE_PATH;
	static const char ADP_QUEUE_PRODUCTOS_KEY;
};

} /* namespace middleware */
#endif /* COMMUNICATIONADP_H_ */
